package cn.iocoder.yudao.module.tms.controller.admin.accountperiodtodo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 账期待办事项 Response VO")
@Data
public class AccountPeriodTodoRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;

    @Schema(description = "账期ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long periodId;

    @Schema(description = "公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private Long companyId;

    @Schema(description = "公司名称", example = "XX公司")
    private String companyName;

    @Schema(description = "待办类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "CREDIT_ALERT")
    private String todoType;

    @Schema(description = "待办标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "授信预警")
    private String title;

    @Schema(description = "待办内容", example = "当前合作金额已超过预警值")
    private String content;

    @Schema(description = "优先级", requiredMode = Schema.RequiredMode.REQUIRED, example = "HIGH")
    private String priority;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "PENDING")
    private String status;

    @Schema(description = "负责人ID", example = "1")
    private Long assigneeId;

    @Schema(description = "负责人姓名", example = "张三")
    private String assigneeName;

    @Schema(description = "截止时间")
    private LocalDateTime dueDate;

    @Schema(description = "完成时间")
    private LocalDateTime completedTime;

    @Schema(description = "完成人ID", example = "1")
    private Long completedBy;

    @Schema(description = "完成备注", example = "已联系客户")
    private String completedRemark;

    @Schema(description = "预警金额", example = "550000.00")
    private BigDecimal alertAmount;

    @Schema(description = "当前金额", example = "560000.00")
    private BigDecimal currentAmount;

    @Schema(description = "剩余天数", example = "7")
    private Integer remainingDays;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;
}
